#!/usr/bin/env python
# -*- coding: utf-8 -*-

from tkinter import *
import time
from tkinter import messagebox
import os

# 内容要保存的目录
DATA_DIR = "E:/pyrecord/work_record"  # 结尾不要跟 分隔符
# 本脚本所在的目录,为的是怕忘记了
PY_DIR = "E:/pyrecord/pyrecord.py"


class MY_GUI():
    def __init__(self, init_window_name):
        self.init_window_name = init_window_name

    # 设置窗口
    def set_init_window(self):
        self.init_window_name.title("🉐工作记录")  # 窗口名
        # self.init_window_name.geometry('320x160+10+10')                         #290 160为窗口大小，+10 +10 定义窗口弹出时的默认展示位置
        self.init_window_name.geometry('480x240-100-100')
        # self.init_window_name["bg"] = "pink"                                    #窗口背景色，其他背景色见：blog.csdn.net/chl0000/article/details/7657887
        # self.init_window_name.attributes("-alpha",0.9)                          #虚化，值越小虚化程度越高

        self.init_window_name.bind("<Control-s>", self.keyRecord)                  # 快捷键 Ctrl+s 保存并关闭窗口
        self.init_window_name.bind("<Control-h>", self.keyDirFunc)                 # 快捷键 Ctrl+h 显示目录
        self.init_window_name.bind("<Control-q>", self.keyQuit)                    # 快捷键 Ctrl+q 直接退出
        # 文本框
        self.init_data_Text = Text(self.init_window_name, width=68, height=16)  # 录入框
        self.init_data_Text.focus_set()
        self.init_data_Text.grid(row=0, column=0, columnspan=3)
        # 按钮
        self.dir_button = Button(self.init_window_name, text="目录", bg="#ccc", width=18,
                                 command=self.dirFunc)  # 调用内部方法  加()为直接调用

        self.dir_button.grid(row=1, column=0)
        self.str_trans_to_md5_button = Button(self.init_window_name, text="O  K", bg="lightblue", width=48,
                                              command=self.record)  # 调用内部方法  加()为直接调用
        self.str_trans_to_md5_button.grid(row=1, column=1, columnspan=2)

    def keyQuit(self,event):
        self.init_window_name.destroy()

    def keyDirFunc(self,event):
        self.dirFunc()

    def dirFunc(self):
        messagebox.showinfo("目录", "保存目录:" + DATA_DIR + "\n 脚本目录:" + PY_DIR)

    def keyRecord(self,event):
        self.record()

    def record(self):
        src = self.init_data_Text.get(1.0, END)
        text = str(src)
        text = "".join(text.split())
        if text == "":
            self.init_window_name.destroy()
        else:
            filename = time.strftime('%Y%m%d', time.localtime(time.time())) + ".md"               # 文件直接保存为 .md , 个人喜欢使用markdown来写作.
            file = open(file=DATA_DIR + os.sep + filename, mode="a+", encoding='utf-8')

            cont = "\n\n" + time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())) + "\n---\n" + str(src)

            file.write(cont)


            filename = time.strftime('%Y%m%d', time.localtime(time.time())) + ".back.md"               # 文件直接保存为 .md , 个人喜欢使用markdown来写作.
            file = open(file=DATA_DIR + os.sep + filename, mode="a+", encoding='utf-8')
            cont = "\n\n" + str(src)
            file.write(cont)

            self.init_window_name.destroy()



def gui_start():
    init_window = Tk()  # 实例化出一个父窗口
    ZMJ_PORTAL = MY_GUI(init_window)
    # 设置根窗口默认属性
    ZMJ_PORTAL.set_init_window()

    init_window.mainloop()  # 父窗口进入事件循环，可以理解为保持窗口运行，否则界面不展示


gui_start()